home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Komunik / Webscr / HTMLtool / _SETUP.1 / Weight Calculator.scp < prev   
Text File  |  1999-10-03  |  7KB  |  344 lines

  1. <HTMLtool>This script just does some calculations on your weight and height.</HTMLtool>
  2. <SCRIPT LANGUAGE="JavaScript">
  3. <!--
  4.  
  5. function getHeight(sex, age, height) {
  6.     height = Math.round(height)
  7.     var height5 = 0
  8.     var height50 = 0
  9.     if (age == 2) {
  10.         height50 = 87
  11.         height5 = 82
  12.     } else
  13.     if (age == 3) {
  14.         height50 = 95
  15.         height5 = 90
  16.     } else
  17.     if (age == 4) {
  18.         height50 = 102
  19.         height5 = 95
  20.     } else 
  21.     if (age == 5) {
  22.         height50 = 109
  23.         height5 = 101
  24.     } else 
  25.     if (age == 6) {
  26.         height50 = 114
  27.         height5 = 107
  28.     } else 
  29.     if (age == 7) {
  30.         height50 = 120
  31.         height5 = 112
  32.     } else 
  33.     if (age == 8) {
  34.         height50 = 126
  35.         height5 = 118
  36.     } else 
  37.     if (age == 9) {
  38.         height50 = 131
  39.         height5 = 121
  40.     } else 
  41.     if (age == 10) {
  42.         height50 = 137
  43.         height5 = 127
  44.     } else 
  45.     if (age == 11) {
  46.         height50 = 143
  47.         height5 = 131
  48.     } else
  49.     if (sex == "f") {
  50.         if (age == 12) {
  51.             height50 = 150
  52.             height5 = 140
  53.         } else 
  54.         if (age == 13) {
  55.             height50 = 157
  56.             height5 = 145
  57.         } else 
  58.         if (age == 14) {
  59.             height50 = 160
  60.             height5 = 148
  61.         } else 
  62.         if (age == 15) {
  63.             height50 = 162
  64.             height5 = 150
  65.         } else 
  66.         if (age == 16) {
  67.             height50 = 162
  68.             height5 = 151
  69.         } else 
  70.         if (age == 17) {
  71.  
  72.             height50 = 163
  73.             height5 = 153
  74.         } else 
  75.         if (age == 18) {
  76.             height50 = 164
  77.             height5 = 154
  78.         }
  79.     } else
  80.     if (age == 12) {
  81.         height50 = 150
  82.         height5 = 137
  83.     } else 
  84.     if (age == 13) {
  85.         height50 = 156
  86.         height5 = 142
  87.     } else 
  88.     if (age == 14) {
  89.         height50 = 162
  90.         height5 = 148
  91.     } else 
  92.     if (age == 15) {
  93.         height50 = 168
  94.         height5 = 155
  95.     } else 
  96.     if (age == 16) {
  97.         height50 = 174
  98.         height5 = 160
  99.     } else 
  100.     if (age == 17) {
  101.         height50 = 175
  102.         height5 = 165
  103.     } else 
  104.     if (age == 18) {
  105.         height50 = 176
  106.         height5 = 165
  107.     }
  108.     var percent = (height - height5) * (50 - 5) / (height50 - height5) + 5
  109.     return percent
  110. }
  111.  
  112. // Returns the weight percentage (50% is
  113. // average...), according to the given
  114. // sex, age, and actual weight in kg
  115. /////////////////////////////////////////
  116.  
  117. function getWeight(sex, age, weight) {
  118.     weight = Math.round(weight)
  119.     var weight5 = 0
  120.     var weight50 = 0
  121.     if (age == 2) {
  122.         weight50 = 12
  123.         weight5 = 10
  124.     } else
  125.     if (age == 3) {
  126.         weight50 =14
  127.         weight5 = 12
  128.     } else
  129.     if (age == 4) {
  130.         weight50 = 16
  131.         weight5 = 14
  132.     } else 
  133.     if (age == 5) {
  134.         weight50 = 18
  135.         weight5 = 15
  136.     } else 
  137.     if (age == 6) {
  138.         weight50 = 20
  139.         weight5 = 17
  140.     } else 
  141.     if (age == 7) {
  142.         weight50 = 22
  143.         weight5 = 18
  144.     } else 
  145.     if (age == 8) {
  146.         weight50 = 25
  147.         weight5 = 20
  148.     } else 
  149.     if (age == 9) {
  150.         weight50 = 29
  151.         weight5 = 22
  152.     } else 
  153.     if (sex == "f") {
  154.         if (age == 10) {
  155.             weight50 = 32
  156.             weight5 = 25
  157.         } else
  158.         if (age == 11) {
  159.             weight50 = 37
  160.             weight5 = 27
  161.         } else
  162.         if (age == 12) {
  163.             weight50 = 41
  164.             weight5 = 30
  165.         } else 
  166.         if (age == 13) {
  167.             weight50 = 46
  168.             weight5 = 34
  169.         } else 
  170.         if (age == 14) {
  171.             weight50 = 50
  172.             weight5 = 38
  173.         } else 
  174.         if (age == 15) {
  175.             weight50 = 53
  176.             weight5 = 40
  177.         } else 
  178.         if (age == 16) {
  179.             weight50 = 56
  180.             weight5 = 43
  181.         } else 
  182.         if (age == 17) {
  183.             weight50 = 57
  184.             weight5 = 45
  185.         } else 
  186.         if (age == 18) {
  187.             weight50 = 57
  188.             weight5 = 46
  189.         }
  190.     } else
  191.     if (age == 10) {
  192.         weight50 = 24
  193.         weight5 = 31
  194.     } else 
  195.     if (age == 11) {
  196.         weight50 = 35
  197.         weight5 = 27
  198.     } else
  199.     if (age == 12) {
  200.         weight50 = 40
  201.         weight5 = 30
  202.     } else 
  203.     if (age == 13) {
  204.         weight50 = 46
  205.         weight5 = 35
  206.     } else 
  207.     if (age == 14) {
  208.         weight50 = 51
  209.         weight5 = 38
  210.     } else 
  211.     if (age == 15) {
  212.         weight50 = 57 
  213.         weight5 = 44
  214.     } else 
  215.     if (age == 16) {
  216.         weight50 = 62
  217.  
  218.         weight5 = 48
  219.     } else 
  220.     if (age == 17) {
  221.         weight50 = 67
  222.         weight5 = 53
  223.     } else 
  224.     if (age == 18) {
  225.         weight50 = 69
  226.         weight5 = 55
  227.     }
  228.     var percent = (weight - weight5) * (50 - 5) / (weight50 - weight5) + 5
  229.     return percent
  230. }
  231.  
  232. // Creates a comment according to the 
  233. // height, weight, age, sex, and a 
  234. // computed overall caculation. Also
  235. // displays a disclaimer. It optionally
  236. // displays the "scientific" results
  237. /////////////////////////////////////////
  238.  
  239. function printResult(height, weight, sex, age) {
  240.     var heightAdj = ""
  241.     var weightAdj = ""
  242.     var ageAdj = ""
  243.  
  244.     var sexAdj = ""
  245.     var gradeAdj = ""
  246.     var grade = 0
  247.     var propWeight = weight / height
  248.     if (height > 70) { 
  249.         heightAdj = "tall"
  250.         grade += 2
  251.     } else
  252.         if (height < 30) {
  253.             heightAdj = "short"
  254.             grade += 1
  255.         } else {
  256.             heightAdj = "medium-height"
  257.             grade += 3
  258.         }
  259.     if (propWeight > 2) {
  260.         weightAdj = "over-weight"
  261.         grade += 1
  262.     } else
  263.         if (propWeight < 0.5) {
  264.             weightAdj = "slim"
  265.             grade += 2
  266.         } else {
  267.             weightAdj = "medium-weight"
  268.             grade += 3
  269.         }
  270.     ageAdj = ageInput + "-year old"
  271.     if (grade >= 5)
  272.         gradeAdj = "great-looking"
  273.     else
  274.         if (grade <= 2)
  275.             gradeAdj = "ackward-looking"
  276.         else
  277.             gradeAdj = "fine-looking"
  278.     sexAdj = (sex == "f") ? "female" : "male"
  279.     var finalMessage = "You are a " + heightAdj + ", "
  280.     finalMessage += weightAdj + ", " + gradeAdj + " "
  281.     finalMessage += ageAdj + " " + sexAdj + "."
  282.     alert(finalMessage)
  283.     if (confirm("Are you interested in scientific results?")) {
  284.         scMessage = "height = " + Math.round(height)
  285.         scMessage +="%\rweight = " + Math.round(weight)
  286.         scMessage += "%\rweight/height = " + propWeight
  287.         alert(scMessage)
  288.     } else
  289.         if (grade <= 4)
  290.             alert("Good idea!")
  291.     var notice = "Thank you for using the JavaScript weight "
  292.     notice += "and height calculator. All calculations are "
  293.     notice += "done according to the child-development graph "
  294.     notice += "in \"Compton's Encyclopedia\". We appologize "
  295.     notice += "if you were insulted by the comments -- that "
  296.     notice += "was not our intention. We used them to demonstrate "
  297.     notice += "various JavaScript scripting techniques."
  298.     alert(notice)
  299. }
  300.  
  301. // converts weight and height from 
  302. // english system to metric system.
  303. /////////////////////////////////////////
  304.  
  305. function convertInput() {
  306.     weightInput *= 0.45359
  307.     heightInput *= 2.54
  308. }
  309.  
  310. // Global statements to receive input
  311. // and call functions
  312. /////////////////////////////////////////
  313.  
  314. var sex = prompt("Enter sex ((m)ale or (f)emale):", "")
  315. var ageInput = parseInt(prompt("Enter age in years (minimum = 2):", ""))
  316. ageInput = Math.round(ageInput)
  317. var systemMessage = "Whould you like to use the (m)etric system "
  318. systemMessage += "or the (e)nglish one?"
  319. var system = prompt(systemMessage, "m")
  320. var heightUnit = (system == "m") ? "centimeters" : "inches" 
  321. var weightUnit = (system == "m") ? "kilograms" : "pounds"
  322. var heightInput = prompt("Enter height in " + heightUnit + ":", "")
  323. heightInput = parseInt(heightInput)
  324. var weightInput = prompt("Enter weight in " + weightUnit + ":", "")
  325. weightInput = parseInt(weightInput)
  326. if (system == "e")
  327.     convertInput()
  328. if (ageInput > 18)
  329.         var age = 18
  330.     else
  331.         if (ageInput < 2)
  332.             var age = 2
  333.         else
  334.         var age = ageInput
  335. var heightPer = getHeight(sex, age, heightInput)
  336. var weightPer = getWeight(sex, age, weightInput)
  337. heightPer = (heightPer < 1) ? 1 : heightPer
  338. heightPer = (heightPer > 99) ? 99 : heightPer
  339. weightPer = (weightPer < 1) ? 1 : weightPer
  340. weightPer = (weightPer > 99) ? 99 : weightPer
  341. printResult(heightPer, weightPer, sex, age)
  342.  
  343. // -->
  344. </SCRIPT>